/**
    定义一个手机抽象类，
      手机型号属性， 打电话，发短信， 打游戏，
    功能机，                     智能机
     只能接打电话发短不能玩游戏
     按钮接打电话
     触屏接打电话
 */

abstract class IMobile {
	public type: string
	abstract call(): void
	abstract send(message: string): void
}

interface IPs {
	playGame(): void
}

class FeatureMobile extends IMobile {
	call(): void {
		console.log('功能机按钮打电话')
	}
	send(message: string): void {
		console.log('功能按钮发短信')
	}
}

class SmartMobile extends IMobile implements IPs {
	call(): void {
		console.log('智能机触屏打电话')
	}
	send(message: string): void {
		console.log('智能机触屏发短信: ',message)
	}
	playGame(): void {
		console.log('智能机玩ps游戏')
	}
}

const smart1:SmartMobile = new SmartMobile()
smart1.call()
smart1.send('今天天气不错!')
smart1.playGame()